Technical Field
The present disclosure relates to the field of distributing software updates. In particular, to a system and method for distributing software updates.
Related Art
Machine-to-machine (a.k.a. M2M) communication includes technologies that enable systems and devices to communicate with other systems and devices. The systems and devices include various types of machines that have both data handling and communications capabilities such as, for example, embedded computing devices (e.g. washing machine, automobile), sensors (e.g. thermostat) and service platforms (e.g. software update server).
The communication between the systems and devices can include, for example, the transmission of various data payloads, event notifications, signals and other forms of data transmission. One application of M2M communication that is attracting growing interest is updating software (e.g. executable object code) stored on the devices.
As the number and diversity of devices participating in distributed software updates grow, numerous challenges arise for the infrastructure providing the software update distribution capability. The challenges may include issues related to scalability, security, interoperability, intermittent connectivity and minimizing device resource requirements. Scalability issues may relate to large populations of devices both homogeneous and heterogeneous. The interoperability issues include heterogeneity of devices, devices having multiple sub-components, multiple competing standards and a lack of standardization. Intermittent connectivity may affect devices that have periodic or sporadic connectivity due to factors such as power consumption minimization, intermittent operation (e.g. frequently powered off) and loss of network coverage (in particular for wireless devices). Minimization of device resource requirement, for example when determining the applicability of software updates, may involve one or more resources related to computing capacity, memory footprint, power consumption and bandwidth consumption.
There is a need for a system and method for distributing software updates that mitigates one or more of the challenges described above.